package cc.aiee.wxpay.core.pojo.dto;

import cc.aiee.core.interfaces.PayJsonBeanInterface;
import cc.aiee.core.kit.KitJson;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = false)
public class WxPayRefundDTO extends WxPayXmlDTO implements PayJsonBeanInterface {

	private String appid;
	private String mch_id;
	private String nonce_str;
	private String sign;
	/**
	 * 微信支付订单号
	 */
	private String transaction_id;
	// 商户订单号
	private String out_trade_no;
	// 商户退款单号
	private String out_refund_no;
	// 微信退款单号
	private String refund_id;
	// 退款金额
	private Integer refund_fee;
	// 应结退款金额
	private Integer settlement_refund_fee;
	// 标价金额
	private Integer total_fee;
	// 应结订单金额
	private Integer settlement_total_fee;
	// 标价币种
	private String fee_type;
	// 现金支付金额
	private Integer cash_fee;
	// 现金支付币种
	private String cash_fee_type;
	// 现金退款金额
	private Integer cash_refund_fee;

	/**
	 * 待完善的内容
	 * <li>coupon_type_$n 代金券类型</li>
	 * <li>coupon_refund_fee_$n 单个代金券退款金额</li>
	 * <li>coupon_refund_id_$n 退款代金券ID</li>
	 */

	// 代金券退款总金额
	private Integer coupon_refund_fee;
	// 退款代金券使用数量
	private Integer coupon_refund_count;

	@Override
	public String toJson() {

		return KitJson.toJSONString(this);
	}

	@Override
	public String toJson(boolean prettyFormat, boolean ignoreNull) {
		return KitJson.toJSONString(this, prettyFormat, ignoreNull);
	}

}
